package com.haois.mp.database.module.remote.service;


import java.io.File;
import java.util.Map;

public interface IUserService {
    /**
     * 注册账户
     * @param phone
     * @param password
     * @param verifyCode
     * @return
     */
    Map register(String phone, String password, String verifyCode);

    /**
     * 发送验证码
     * @param phone
     * @return
     */
    Map sendVerifyCode(String phone);

    /**
     * 获取验证码
     * @param phone
     * @return
     */
    Map getVerifyCode(String phone);

    /**
     * 登录
     * @param username
     * @param password
     * @param openid
     * @param type
     * @param sessionKey
     * @return
     */
    Map login(String username, String password, String openid, String type, String sessionKey);

    /**
     * 修改密码
     * @param oldPassword
     * @param newPassword
     * @param access_token
     * @return
     */
    Map modifyPwd(String oldPassword, String newPassword, String access_token);

    /**
     * 获取个人信息
     * @param access_token
     * @param memberNum
     * @param oid
     * @return
     */
    Map getUserInfo(String access_token, String memberNum, String oid);

    /**
     * 获取个人信息
     * @param access_token
     * @param oid
     * @return
     */
    Map getUserInfo(String access_token, String oid);

    /**
     * 获取个人信息
     * @param access_token
     * @return
     */
    Map getUserInfo(String access_token);

    /**
     * 获取成员通过名字
     * @param access_token
     * @param name
     * @return
     */
    Map getUserByName(String access_token, String name);

    /**
     *
     * @param access_token
     * @return
     */
    Map getUserState(String access_token);

    /**
     * 更新个人信息
     * @param map
     * @param access_token
     * @return
     */
    Map updateUserInfo(Map map, String access_token);

    /**
     * 修改头像
     * @param photo
     * @param access_token
     * @return
     */
    Map modifyPhoto(File photo, String access_token);

    /**
     * 重置密码
     * @param access_token
     * @param code
     * @param newPassword
     * @param phoneNumber
     * @return
     */
    Map resetUserPassword(String access_token, String code, String newPassword, String phoneNumber);

    /**
     * 发送重置密码验证码
     * @param phoneNumber
     * @param access_token
     * @return
     */
    Map sendResetPassVerifyCode(String phoneNumber, String access_token);


    boolean loginApi(String userName,String passWord);

}
